#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)

//https://leetcode.cn/problems/find-peak-element/
// class Solution {
// public:
//     int findPeakElement(vector<int>& nums) {
//         int left = 0, right = nums.size() - 1;


//         while(left < right)
//         {
//             int mid = left + (right - left + 1)/2;
//             if(nums[mid] > nums[mid-1]) left = mid;
//             else if(nums[mid] < nums[mid-1]) right = mid - 1;
//             else if(nums[mid] > nums[mid-1] && nums[mid] < nums[mid - 1]) left = mid;
//         }

//         return left;
//     }
// };

class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        int left = 0, right = nums.size() - 1;


        while (left < right)
        {
            int mid = left + (right - left) / 2;
            if (nums[mid] > nums[mid + 1]) right = mid;
            else left = mid + 1;
        }

        return left;
    }
};